package com.cy.rsspush;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.nio.charset.Charset;

public class RssReader {

    static Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("localhost", 7890));

    // 解析 RSS feed 并抓取网页内容
    public void readRssFeed(String rssUrl) {
        try {
            // 使用 Jsoup 获取 RSS 数据并通过代理连接

            Document doc = Jsoup.connect(rssUrl).proxy(proxy).get();
            Elements items = doc.select("item");


            for (Element item : items) {
                // 提取每个条目的标题、链接和描述
                String title = item.select("title").text();
                String link = item.select("link").text();
                String description = item.select("description").text();

                // 输出 RSS 条目的基本信息
                System.out.println("Title: " + title);
                System.out.println("Link: " + link);
                System.out.println("Description: " + description);

//                // 获取并输出该条目链接的详细内容
//                String content = fetchWebContent(link);
//                System.out.println("Content: " + content);
                System.out.println("====================================");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 解析并获取指定网页的正文内容
    public String fetchWebContent(String url) {
        try {
            // 使用 Jsoup 解析网页
            Document doc = Jsoup.connect(url)
                    .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
                    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
                    .header("Accept-Encoding", "gzip, deflate, br")
                    .header("Connection", "keep-alive")
                    .header("Upgrade-Insecure-Requests", "1")
                    .proxy(proxy).get();

            doc.charset(Charset.forName("UTF-8"));

            // 获取页面正文内容，通常可以从 <body> 标签中提取
            // 如果文章正文内容位于其他标签，选择合适的 CSS 选择器
            Element bodyContent = doc.body();

            // 可以根据需要调整选择器，假设正文在 <div class="article-content"> 中
            // Elements content = doc.select(".article-content");  // 如果网页有这种类

            // 返回纯文本内容
            return bodyContent.text();
        } catch (IOException e) {
            e.printStackTrace();
            return "Failed to fetch content";
        }
    }

    public static void main(String[] args) {
        RssReader reader = new RssReader();
        // 示例 RSS 源链接
        String rssUrl = "https://rss.app/feeds/tIWmmmy3S7lhENt1.xml";  // 替换为有效的 RSS URL
//        String rssUrl = "https://www.google.com.hk/search?q=%E4%BA%BA%E5%8A%9B%E8%B5%84%E6%BA%90++%E6%96%B0%E9%97%BB%E8%AE%A2%E9%98%85&newwindow=1&sca_esv=08810a66cef76e77&ei=iE92Z6mbJqze2roPt5zS2A0&ved=0ahUKEwip_9m40NaKAxUsr1YBHTeOFNsQ4dUDCBA&uact=5&oq=%E4%BA%BA%E5%8A%9B%E8%B5%84%E6%BA%90++%E6%96%B0%E9%97%BB%E8%AE%A2%E9%98%85&gs_lp=Egxnd3Mtd2l6LXNlcnAiGuS6uuWKm-i1hOa6kCAg5paw6Ze76K6i6ZiFMggQABiABBiiBDIIEAAYgAQYogQyCBAAGKIEGIkFMgUQABjvBUjtXlDRQ1jaXXAGeAGQAQGYAf8DoAH7GKoBCjAuMTIuMi41LTG4AQPIAQD4AQGYAgmgAscEwgIKEAAYsAMY1gQYR5gDAIgGAZAGCpIHBTYuMi4xoAeAHg&sclient=gws-wiz-serp";  // 替换为有效的 RSS URL
        reader.readRssFeed(rssUrl);
    }
}
